-- 1.参数列表
-- 1.1 优惠券id
local voucherid = ARGV[1]
local userid = ARGV[2]
local orderid=ARGV[3]

-- 2.数据key
-- 2.1 库存key
local stockkey = 'seckill:stock:'..voucherid
-- 2.2 订单key
local orderkey = 'seckill:order:'..voucherid

if(tonumber(redis.call('get',stockkey))<=0) then
    return 1
end
if(redis.call('sismember',orderkey,userid)) then
    return 2
end
redis.call('increby',stockkey,-1)
redis.call('sadd',orderkey,userid)

-- 最后什么都符合了就向消息队列发消息
redis.call('xadd','stream.orders','*','userId',userid,'voucherId',voucherid,'id',orderid)
return 0